#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_mainwindow.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindowClass; };
QT_END_NAMESPACE

class QFileSystemModel;
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindowClass *ui;

private:
    QFileSystemModel* model_fs = nullptr;//操作文件系统的模型

//相关信号的槽函数
private slots:

    /**
     * @brief 设置根节点触发
    */
    void on_action_SetRoot_triggered();

    /**
     * @brief 显示目录和文件
    */
    void on_radioButton_ShowAll_clicked();

    /**
     * @brief 只显示目录
    */
    void on_radioButton_ShowOnlyDir_clicked();

    /**
     * @brief 文件过滤
     * @param checked 
    */
    void on_checkBox_EnableFilters_clicked(bool checked);

    /**
     * @brief 应用过滤器
    */
    void on_pushButton_ApplyFilters_clicked();

    /**
     * @brief 点击了树状视图
     * @param index 索引
    */
    void on_treeView_clicked(const QModelIndex& index);
};
